原因
使用docker的过程中, CPU和内存经常占满,导致其它服务都不能正常使用。
内存和CPU限制
yml文件添加 service.deploy内容如下:
1 | deploy: |
注意:reservations中不支持cpus,仅支持内存。
以nginx为例:
1 | version: '3.7' |
启动容器
限制指令为deploy.resources.limits这部分,注意节点位置,
上面这部分限制的含义是:nginx服务的CPU使用被限制在最多200%的CPU能力,内存使用被限制在最多5GB。
同时,这个服务至少需要200MB的内存。
启动的时候命令需要发生一些变化,否则不会生效:
原本的启动命令为
1 | docker-compse up -d |
需要添加一个参数–compatibility表示以兼容模式来运行
1
docker-compose --compatibility up -d
这里的关键在于添加–compatibility参数以兼容模式来运行,否则限制不会生效。
验证
通过上述方法限制容器CPU和内存后,可以使用命令:docker stats查看容器资源使用情况.
总结
docker-compose.yml限制内存需要添加deploy.resources.limits节点
docker-compose命令启动的时候需要添加–compatibility参数以兼容模式来运行,否则限制不会生效
一辈子很短,努力的做好两件事就好;
第一件事是热爱生活,好好的去爱身边的人;
第二件事是努力学习,在工作中取得不一样的成绩,实现自己的价值,而不是仅仅为了赚钱;